#[macro_use]
extern crate log;
extern crate env_logger;

mod core;

mod function;

mod context;

mod config;

mod application;


pub mod ecs {
    pub use bevy_ecs::*;
}

pub use function::layer::layer::Layer;

pub mod ui {
    pub use egui;

    pub use super::function::ui::ui_context::*;
}

pub mod event {
    pub use super::function::event::*;
}

pub mod input {
    pub use super::function::input::*;
}

pub mod render_api {
    pub use super::function::render::{CustomRenderPipeline,ScreenDescriptorInfo,rhi::Rhi,loader::ShaderLoader, Order , render_target::RenderTarget};
    pub use wgpu::*;
}

pub mod math {
    pub use super::core::math::*;
}

pub mod color {
    pub use super::core::color::*;
}

pub mod pool {
    pub use super::core::pool::*;
}

pub mod draw_command {
    pub use super::function::command::canvas2d::*;
}

pub mod scene {
    pub use super::function::scene::{scene::*,entity::Entity,components::*,camera::*,world::AlicePhysicsWorld};
}

pub mod physics2d {
    pub use rapier2d;
}

pub use application::App;
pub use context::AliceContext;